<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition xmlns="http://www.w3.org/1999/xhtml"  
    xmlns:h="http://java.sun.com/jsf/html"  
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:p="http://primefaces.org/ui"
    template="/plantillas/plantilla-sistema.xhtml">
    
    <ui:define name="cabecera">
        
        <title>Recolecciones</title>
        <link rel="shortcut icon"  href="../../resources/imagenes/favicon.ico" />
        
    </ui:define>
    
    <ui:define name="contenido">
        <center>
            
            <p:panel id="tablaRecoleccionPnl" 
                     header="Recolecciones">
                <h:form id="tablaRecoleccionFrm">
                    <p:dataTable id="tablaRecoleccionDtb" 
                                 emptyMessage="No hay registros disponibles."
                                 value="#{recoleccionBean.listaRecolecciones}" 
                                 var="recoleccion" 
                                 rowKey="#{recoleccion.codigorecoleccion}"
                                 rows="10"
                                 paginator="true"
                                 paginatorPosition="bottom" 
                                 resizableColumns="true">
                        
                        <p:column headerText="Fecha" 
                                  sortBy="#{recoleccion.fecharecoleccion}" 
                                  filterBy="#{recoleccion.fecharecoleccion}" 
                                  filterMatchMode="contains">
                            <h:outputText id="fecharecoleccionTxt" 
                                          value="#{recoleccion.fecharecoleccion}" >
                                <f:convertDateTime pattern="dd/MM/yyyy"/>
                            </h:outputText>
                        </p:column>
                        
                        <p:column headerText="Tipo" 
                                  sortBy="#{recoleccion.tiporecoleccion}" 
                                  filterBy="#{recoleccion.tiporecoleccion}" 
                                  filterMatchMode="contains">
                            <h:outputText id="tiporecoleccionTxt" 
                                          value="#{recoleccion.tiporecoleccion == 'N' ? 'Nacional' : 'Internacional'}" />
                        </p:column>
                        
                        <p:column headerText="Latitud" 
                                  sortBy="#{recoleccion.latitud}" 
                                  filterBy="#{recoleccion.latitud}" 
                                  filterMatchMode="contains">
                            <h:outputText id="latitudTxt" 
                                          value="#{recoleccion.latitud}" />
                        </p:column>
                        
                        <p:column headerText="Longitud" 
                                  sortBy="#{recoleccion.longitud}" 
                                  filterBy="#{recoleccion.longitud}" 
                                  filterMatchMode="contains">
                            <h:outputText id="longitdTxt" 
                                          value="#{recoleccion.longitud}" />
                        </p:column>
                        
                        <p:column headerText="Observaciones" 
                                  sortBy="#{recoleccion.observaciones}" 
                                  filterBy="#{recoleccion.observaciones}" 
                                  filterMatchMode="contains">
                            <h:outputText id="observacionesTxt" 
                                          value="#{recoleccion.observaciones}" />
                        </p:column>
                        
                        <p:column headerText="Habilitado" 
                                  sortBy="#{recoleccion.habilitado}" 
                                  filterBy="#{recoleccion.habilitado}" 
                                  filterMatchMode="contains">
                            <h:outputText id="habilitadoTxt" 
                                          value="#{recoleccion.habilitado}" />
                        </p:column>
                        
                        <p:column headerText="Detalle">
                            <center>
                                <p:commandButton id="detalleBtn" 
                                                 icon="ui-icon-search"
                                                 title="Ver" 
                                                 actionListener="algo(recoleccion)" 
                                                 update="@form" />
                                    <p:overlayPanel id="detalleOpn" 
                                                    for="detalleBtn" 
                                                    dynamic="true"
                                                    appendToBody="true" 
                                                    showEvent="mouseup" 
                                                    hideEvent="mouseup">
                                        
                                        <p:panel rendered="recoleccion.tiporecoleccion == 'N'">
                                        <h:panelGrid columns="2">
                                            
                                            <p:outputLabel value="Zona:"/>
                                            <p:outputLabel value="#{recoleccionBean.nacional.zona.municipio}" />
                                            <p:outputLabel value="Altura:"/>
                                            <p:outputLabel value="#{recoleccionBean.nacional.altura}" />
                                            <p:outputLabel value="Temperatura:"/>
                                            <p:outputLabel value="#{recoleccionBean.nacional.temperatura}" />
                                            <p:outputLabel value="Recolector:"/>
                                            <p:outputLabel value="#{recoleccionBean.nacional.recolector.nombre}" />
                                            <p:outputLabel value="Auxiliar:"/>
                                            <p:outputLabel value="#{recoleccionBean.nacional.recolectorauxiliar}" />
                                            <p:outputLabel value="Equipo:"/>
                                            <p:outputLabel value="#{recoleccionBean.nacional.equiporecoleccion}" />
                                            
                                        </h:panelGrid>
                                        </p:panel>
                                        
                                        <p:panel rendered="recoleccion.tiporecoleccion == 'I'">
                                        <h:panelGrid columns="2">
                                            
                                            <p:outputLabel value="País:"/>
                                            <p:outputLabel value="#{recoleccionBean.internacional.pais}" />
                                            <p:outputLabel value="Distrito:"/>
                                            <p:outputLabel value="#{recoleccionBean.internacional.distrito}" />
                                            <p:outputLabel value="Ciudad:"/>
                                            <p:outputLabel value="#{recoleccionBean.internacional.ciudad}" />
                                            <p:outputLabel value="Donante:"/>
                                            <p:outputLabel value="#{recoleccionBean.internacional.donante}" />
                                            
                                        </h:panelGrid>
                                        </p:panel>
                                        
                               </p:overlayPanel>
                            </center>
                        </p:column>
                        
                        <p:column headerText="Modificar">
                             <center>
                                 <p:commandButton id="modificarBtn" 
                                                  icon="ui-icon-pencil"
                                                  title="Modificar" 
                                                  update=":guardarRecoleccionFrm:guardarRecoleccionPnl"
                                                  oncomplete="guardarRecoleccionWgt.show()">
                                    <f:setPropertyActionListener target="#{recoleccionBean.recoleccion}" 
                                                                 value="recoleccion" />
                                    <f:setPropertyActionListener target="#{recoleccionBean.operacionActual}" 
                                                                 value="ACTUALIZACION" />
                                </p:commandButton>
                             </center>
                         </p:column>
                        
                        <p:column headerText="Eliminar">
                             <center>
                                 <p:commandButton id="eliminarBtn"
                                                  title="Eliminar" 
                                                  icon="ui-icon-trash"
                                                  update="@form" 
                                                  oncomplete="confirmacionWgt.show()">
                                    <f:setPropertyActionListener target="#{recoleccionBean.recoleccion}" 
                                                                 value="recoleccion" />
                                    <f:setPropertyActionListener target="#{recoleccionBean.operacionActual}" 
                                                                 value="ELIMINACION" />
                                </p:commandButton>
                             </center>
                         </p:column>
                        
                         <f:facet name="footer">
                               <p:commandButton id="agregarBtn" 
                                                icon="ui-icon-document"
                                                value="Nueva recolección"
                                                actionListener="#{recoleccionBean.prepararAdicion}"
                                                update=":guardarRecoleccionFrm:guardarRecoleccionWzd"
                                                oncomplete="guardarRecoleccionWgt.show()">
                                   <f:setPropertyActionListener target="#{recoleccionBean.operacionActual}" 
                                                                value="INSERCION" />
                               </p:commandButton>
                        </f:facet>
                        
                    </p:dataTable>
                </h:form>
            </p:panel>
            
        </center>
    </ui:define>
    
    <ui:define name="extra">
        <p:dialog id="guardarRecoleccionDlg" 
                  widgetVar="guardarRecoleccionWgt"
                  header="Gestión de recolección"  
                  modal="true" 
                  resizable="false"
                  width="800">
        <h:form id="guardarRecoleccionFrm">  

            <p:wizard id="guardarRecoleccionWzd" 
                      flowListener="#{recoleccionBean.procesarFlujoAdicion}">   

                <p:tab id="recoleccionTab" title="Recolección">  
                    <p:panel id="recoleccionPnl">  
                        
                        <h:panelGrid columns="2">  

                            <p:outputLabel for="tipoCmb" value="Tipo de recolección: " />
                            <p:selectOneRadio id="tipoCmb" 
                                              value="#{recoleccionBean.recoleccion.tiporecoleccion}">  
                                <f:selectItem itemLabel="Nacional" itemValue="N"/>  
                                <f:selectItem itemLabel="Internacional" itemValue="I" />  
                                <p:ajax event="change"
                                        listener="#{recoleccionBean.actualizarTipoRecoleccion}" />
                            </p:selectOneRadio>
                            
                            <p:outputLabel for="fecharecoleccionTxt" value="Fecha:"/>
                            <p:calendar id="fecharecoleccionTxt" 
                                        value="#{recoleccionBean.recoleccion.fecharecoleccion}"
                                        title="Elija una fecha"
                                        pattern="dd/MM/yyyy"
                                        mode="popup" />
                            
                            <p:outputLabel for="latitudTxt" value="Latitud:"/>
                            <p:inputText id="latitudTxt" 
                                         value="#{recoleccionBean.recoleccion.latitud}" />      
                            
                            <p:outputLabel for="longitudTxt" value="Longitud:"/>
                            <p:inputText id="longitudTxt" 
                                         value="#{recoleccionBean.recoleccion.longitud}" />
                    
                            <p:outputLabel for="observacionesTxa" value="Observaciones:" />
                            <p:inputTextarea id="observacionesTxa" 
                                             value="#{recoleccionBean.recoleccion.observaciones}" 
                                             autoResize="false" 
                                             maxlength="1000"/>
                            
                        </h:panelGrid>  
                        
                    </p:panel>  
                </p:tab>  

                <p:tab id="detalleTab" title="Detalle">  
                    <p:panel id="nacionalPnl"
                             rendered="#{recoleccionBean.tipoRecoleccion == 'NACIONAL'}">  
                        
                        <h:panelGrid columns="2">  
 
                            <p:outputLabel for="codigorecolectorTxt" value="Recolector: " />
                            <p:selectOneMenu id="codigorecolectorTxt" 
                                             value="#{recoleccionBean.nacional.recolector}" 
                                             filter="true"
                                             filterMatchMode="contains">
                                <f:selectItem itemLabel="Seleccione..." itemValue="" />
                                <f:selectItems value="#{recoleccionBean.itemsRecolectores}" />
                                <f:converter converterId="recolectorConverter" />                        
                            </p:selectOneMenu>
                            
                            <p:outputLabel for="temperaturaTxt" value="Temperatura:"/>
                            <p:inputText id="temperaturaTxt" 
                                         value="#{recoleccionBean.nacional.temperatura}" />
                            
                            <p:outputLabel for="alturaTxt" value="Altura:"/>
                            <p:inputText id="alturaTxt" 
                                         value="#{recoleccionBean.nacional.altura}" />      
                            
                            <p:outputLabel for="auxiliarTxa" value="Recolectores auxiliares:" />
                            <p:inputTextarea id="auxiliarTxa" 
                                             value="#{recoleccionBean.nacional.recolectorauxiliar}" 
                                             autoResize="false" 
                                             maxlength="500"/>

                            <p:outputLabel for="equipoTxt" value="Equipo de Recolección: " />
                            <p:inputTextarea id="equipoTxt" 
                                             value="#{recoleccionBean.nacional.equiporecoleccion}" 
                                             autoResize="false" 
                                             maxlength="1000"/>


                            <p:outputLabel for="departamentoTxt" value="Departamento: " />
                            <p:selectOneMenu id="departamentoTxt" 
                                              value="#" 
                                              filter="true"
                                              filterMatchMode="contains">
                                <f:selectItem itemLabel="Seleccione..." itemValue="" />
                                <f:selectItems value="#" />                       
                            </p:selectOneMenu>
                            
                            <h:outputText value="Municipio: " />
                            <p:selectOneMenu id="municipioTxt" value="#" filter="true"
                                             filterMatchMode="contains">
                                <f:selectItem itemLabel="Seleccione" itemValue="" />
                                <f:selectItems value="#" />                       
                            </p:selectOneMenu>
                            
                        </h:panelGrid>  
                        
                        <p:commandButton value="Submit" actionListener="#{recoleccionBean.agregarRecoleccion}"/>
                        
                    </p:panel>  
                    <p:panel id="internacionalPnl"
                             rendered="#{recoleccionBean.tipoRecoleccion == 'INTERNACIONAL'}">  
                        
                        <h:panelGrid columns="2">  
 
                            <p:outputLabel for="paisTxt" value="País:"/>
                            <p:inputText id="paisTxt" 
                                         value="#{recoleccionBean.internacional.pais}" />
                            <p:outputLabel for="distritoTxt" value="Distrito:"/>
                            <p:inputText id="distritoTxt" 
                                         value="#{recoleccionBean.internacional.distrito}" />
                            <p:outputLabel for="ciudadTxt" value="Ciudad:"/>
                            <p:inputText id="ciudadTxt" 
                                         value="#{recoleccionBean.internacional.ciudad}" />
                            <p:outputLabel for="donanteTxt" value="Donante:"/>
                            <p:inputText id="donanteTxt" 
                                         value="#{recoleccionBean.internacional.donante}" />
                            
                        </h:panelGrid>  
                        
                        <p:commandButton value="Guardar" 
                                         actionListener="#{userWizard.save}"
                                         update="@form"   
                                         oncomplete="if( !args.validationFailed ) guardarRecoleccionWgt.hide()" />
                        
                    </p:panel> 
                </p:tab>  

            </p:wizard>  

        </h:form> 
        </p:dialog>
        
        !-- Diálogo de confirmación de eliminación -->
        <p:confirmDialog id="confirmacionDlg" 
                         message="¿Está seguro que desea eliminar el registro?" 
                         header="Confirmación" 
                         widgetVar="confirmacionWgt" 
                         severity="alert"
                         width="300">
            
                    <p:commandButton value="Eliminar"
                                     actionListener="#{recoleccionBean.eliminarRecoleccion}"
                                     update=":tablaRecoleccionFrm:tablaRecoleccionDtb"
                                     oncomplete="confirmacionWgt.hide()"
                                     style="float:right;"/>
                    
                    <p:commandButton value="Cancelar"
                                     oncomplete="confirmacionWgt.hide()" 
                                     style="float:right;">
                        <f:setPropertyActionListener target="#{recoleccionBean.operacionActual}" 
                                                     value="NINGUNA" />
                    </p:commandButton>
                    
        </p:confirmDialog>

    </ui:define>
</ui:composition>